package com.sztx.pay.center.core.service;

import java.util.List;

import com.sztx.pay.center.dataaccess.domain.UserInfoDO;
import com.sztx.se.core.service.BaseService;

public interface UserInfoService  extends BaseService {
	
	/**
	 * 创建一个支付用户
	 * 
	 * @param userId        用户id(berbonId)             必传
	 * @param userType      用户类别                                                                   必传
	 * @param isRealName    是否有实名(0未实名，1已实名)        非必传（默认为0）
	 * @param identityNo    身份证号                                                                  当isRealName=1必传
	 * @param realName      真实姓名					          当isRealName=1必传
	 * @param createTime    创建时间                                                                  非必传
	 * @param createUser    操作人员                                                                  非必传
	 * @param updateTime    更新时间                                                                  非必传
	 * @param updateUser    更新人员                                                                  非必传
	 * @param email         邮箱                                                                          非必传
	 * @param remark        备注                                                                          非必传
	 * @author xiaosc
	 * @date 2016年7月12日 下午8:07:17 
	 */
	void createUser(UserInfoDO userInfo);
	
	/**
	 * 用户实名认证
	 * <br>用户只能实名认证一次,一旦用户实名则实名信息（姓名+身份证号）不可更改
	 * @param userId
 	 * @param identityNo
	 * @param realName
	 * @param mobile
	 * @param updateUser
	 * @param remark
	 * @author xiaosc
	 * @date 2016年7月12日 下午8:16:33 
	 * @see [类、类#方法、类#成员]
	 */
	void realName(String userId, String identityNo, String realName, String mobile, String updateUser, String remark);
	
	/**
	 * 根据用户id查询用户信息
	 * <功能详细描述>
	 * @param userId
	 * @return
	 * @author xiaosc
	 * @date 2016年7月12日 下午8:28:53 
	 * @see [类、类#方法、类#成员]
	 */
	UserInfoDO findUserInfo(String userId);
	
	/**
	 * 冻结用户账号
	 * <br>一旦用户账号被冻结，用户不能做任何交易及绑卡等操作
	 * <功能详细描述>
	 * @param userId
	 * @param updateUser
	 * @param remark
	 * @author xiaosc
	 * @date 2016年7月12日 下午8:29:38 
	 * @see [类、类#方法、类#成员]
	 */
	void freeze(String userId,  String updateUser, String remark);
	
	/**
	 * 解冻用户账号
	 * <功能详细描述>
	 * @param userId
	 * @param updateUser
	 * @param remark
	 * @author xiaosc
	 * @date 2016年7月12日 下午8:29:59 
	 * @see [类、类#方法、类#成员]
	 */
	void unfreeze(String userId,  String updateUser, String remark);
	
	/**
	 * 更新用户信息
	 * @param userId
	 * @param newUserInfo
	 */
	void updateUserInfo(String userId, UserInfoDO newUserInfo);
	
	List<UserInfoDO> listUserInfo();

}
